import request from '@/config/axios'
import {InstanceRuleVO} from "@/api/awards/instancerule";

// 评奖 VO
export interface InstanceVO {
  id: string // 评奖ID
  templateId: string // 奖项ID
  templateName?: string // 奖项
  awardsName: string // 评奖名称
  year: string // 年度
  honorType: string // 荣誉类型 字典
  teamHonor: string // 个人/团体荣誉
  noticeUrl: string // 申请通知地址
  onlineApply: boolean // 是否允许在线申请
  applyStartTime: Date // 在线申请时间(开始)
  applyEndTime: Date // 在线申请时间(结束)
  conditionJson: string // 限定条件json
  qualificationReview: boolean // 是否资格审查
  differenceSelection: boolean // 是否差额评选
  preliminaryEvaluation: boolean // 是否初评
  judgeStatus: number // 评选状态 1=未开始 2=初评进行中 3=初评结束 4=终评进行中 5=终评结束
  awardsType: number // 奖项类型 0=通用 1=师昌绪
  remark: string // 备注
  instanceRules?: InstanceRuleVO[] // 通用奖的评审规则列表
  masterCount?: number // 参与硕士学生数
  doctorCount?: number // 参与博士学生数
  initialRules?: string // 初评评审规则
  finalRules?: string // 终评评审规则
  degreeStartTime?: Date // 学位日期开始
  degreeEndTime?: Date // 学位日期结束
}

// 评委评审奖项 VO
export interface TeacherInstanceVO {
  id: string // 评奖id
  awardsName: string // 奖项标题
  templateName: string // 奖项
  year: string // 年度
  judgeStatus: number // 评审状态
  total: number // 总人数
  masterCount: number // 硕士数
  doctorCount: number // 博士数
  hasJudge: boolean // 是否存在评审
}

// 评奖 API
export const InstanceApi = {
  // 查询评奖分页
  getInstancePage: async (params: any) => {
    return await request.get({ url: `/awards/instance/page`, params })
  },

  // 查询评奖详情
  getInstance: async (id: string) => {
    return await request.get({ url: `/awards/instance/get?id=` + id })
  },

  // 新增评奖
  createInstance: async (data: InstanceVO) => {
    return await request.post({ url: `/awards/instance/create`, data })
  },

  // 修改评奖
  updateInstance: async (data: InstanceVO) => {
    return await request.put({ url: `/awards/instance/update`, data })
  },

  // 删除评奖
  deleteInstance: async (id: string) => {
    return await request.delete({ url: `/awards/instance/delete?id=` + id })
  },

  // 导出评奖 Excel
  exportInstance: async (params) => {
    return await request.download({ url: `/awards/instance/export-excel`, params })
  },

  // 评委-查询评奖详情
  getTeacherInstance: async (id: string, type: string) => {
    return await request.get({ url: `/awards/instance/teacher-get`, params: { id, type } })
  },

  // 评委-查询奖项分页
  getJudgesInstancePage: async (params: any) => {
    return await request.get({ url: `/awards/instance/teacher-page`, params })
  },

  // 开启初评
  startInitial: async (id: string) => {
    return await request.put({ url: `/awards/instance/start-initial?id=${id}` })
  },

  // 开启终评
  startFinal: async (id: string) => {
    return await request.put({ url: `/awards/instance/start-final?id=${id}` })
  }
}
